#ifndef ISHADER_H
#define ISHADER_H

#include "mathengine.h"
#include "tgaimage.h"
#include "rasterizer.h"

namespace raster {

struct IShader {
    virtual ~IShader() {}
    // virtual mathengine::Vec4f vertex(int iface, int nthvert) = 0; // VS
    // virtual bool fragment(mathengine::Vec3f bar, TGAColor &color) = 0; // FS
    virtual mathengine::Vec4f vertex(Rasterizer *rasterizer, int iface, int nthvert) = 0;
    virtual bool fragment(Rasterizer *rasterizer, mathengine::Vec3f bar, raster::TGAColor &color) = 0;
};

}

#endif // ISHADER_H
